
package view;

import control.Comando;
import control.Controle;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import javax.swing.*;
import model.*;


public class InterfaceCriarMusica implements Comando {

    @Override
    public void executar() {
        
        
        if (((Artista)Controle.usuarioAtual).getAlbuns().isEmpty()) {JOptionPane.showMessageDialog(null, "Deve-se primeiro criar um Álbum.");}
        else {

            HashMap albuns = new HashMap();      

            int valor = 0;
            ArrayList<String> opcoes = new ArrayList();            
            Iterator<Album> it = ((Artista)Controle.usuarioAtual).getAlbuns().iterator();

            while(it.hasNext())
            {
                Album obj = it.next();                
                String chave = Integer.toString(valor) + " | " + obj.getTitulo();
                opcoes.add(chave);
                albuns.put(chave, obj);
                valor++;   
            }
               

            String retorno =  Controle.getInput("Escolha seu Album:", "Criar Música",opcoes.toArray());
            Album albumSelecionado = (Album)albuns.get(retorno); 
            
            String tituloNovaMusica = Controle.getInput("Digite o titulo de sua nova música", "Criar Música");

            Iterator<Musica> it2 = ((Artista)Controle.usuarioAtual).getMusicas().iterator();
            boolean jaExiste = false;
            while(it2.hasNext())
            {
                Musica obj = it2.next();            
                if (obj.getTitulo().equals(tituloNovaMusica)){
                    jaExiste = true;
                    break;
                }
            }
            if (jaExiste) JOptionPane.showMessageDialog(null, "Já existe um música com este nome. ");         
            else {
                Musica novaMusica = new Musica(
                        Controle.getInputNum("Digite o valor de sua música (em centavos)", "Criar Música"), 
                        tituloNovaMusica, 
                        Controle.getInput("<- Endereço do Arquivo (Abstração) ->", "Criar Música"), 
                        albumSelecionado);
            }
        }
    }
}